package com.qjdchina.sku.dao.mapper;

import java.util.List;
import java.util.Map;

import com.qjdchina.sku.model.ProductCount;
import org.apache.ibatis.annotations.Param;

import com.qjdchina.commons.model.PageModel;
import com.qjdchina.sku.model.SkuProduct;

public interface SkuProductMapper {
    int deleteByPrimaryKey(Integer productId);

    int insert(SkuProduct record);

    int insertSelective(SkuProduct record);

    SkuProduct selectByPrimaryKey(Integer productId);

	List<ProductCount> selectCountByCategoryId(@Param("categoryIds") List<Integer> categoryIds);

    int updateByPrimaryKeySelective(SkuProduct record);

    int updateByPrimaryKey(SkuProduct record);
    
	@SuppressWarnings("rawtypes")
	public List<SkuProduct> queryPagedProductList(@Param("params") Map params,@Param("auditStatusList") List<String> auditStatusList, @Param("page") PageModel<?> page);
	
	
	public List<SkuProduct> selectAllProduct();
	
	
	public SkuProduct selectProductByProductCode(String productCode);
	
	@SuppressWarnings("rawtypes")
	int getPagedProductTotal(@Param("params") Map params,@Param("auditStatusList") List<String> auditStatusList);
	
	/**
	 * 获取产品列表 
	 * shenpingfeng
	 * 2017年1月4日
	 * @param productSetId
	 * @return
	 */
	public List<SkuProduct> selectProductByProductSetId(Integer productSetId);

	/**
	 * 获取几个产品库下的部品
	 *
	 * @param productSetIdList
	 * @return
	 */
	List<SkuProduct> selectProductByProductSetIds(@Param("productSetIdList") List<Integer> productSetIdList);
	
	/**
	 * 根据skuCategoryId和skuBrandId获取
	 * shenpingfeng
	 * 2017年2月16日
	 * @param skuCategoryId
	 * @param skuBrandId
	 * @return
	 */
	public List<SkuProduct> selectProductBySkuCategoryIdAndSkuBrandId(@Param("skuCategoryId") Integer skuCategoryId,@Param("skuBrandId") Integer skuBrandId);
	/**
	 * 根据skuBrandId获取部品
	 * shenpingfeng
	 * 2017年2月23日
	 * @param skuBrandId
	 * @return
	 */
	public List<SkuProduct> selectProductBySkuBrandId(@Param("skuBrandId") Integer skuBrandId);
	
	/**
	 * 根据条件查询
	 * shenpingfeng
	 * 2017年2月27日
	 * @param params
	 * @return
	 */
	@SuppressWarnings("rawtypes")
	public List<SkuProduct> queryProductList(@Param("params") Map params,@Param("auditStatusList") List<String> auditStatusList);
	
}